package com.linkai.注解和反射.reflect;

/**
 * @Description: 类是如何加载的
 * @Author: 林凯
 * @Date: 2021/10/21 17:09
 */
public class Test05 {
    public static void main(String[] args) {
        A a = new A();
        System.out.println(A.m);

        /*
            1. 加载到内存，产生一个类对应的 Class 对象，存在堆区。（Class对象在类加载的时候就产生了）
            2. 链接，链接结束之后 m = 0
            3. 初始化
                <clinit>() {
                    System.out.println("A类静态代码块初始化");
                    m = 300;
                    m = 100;
                }
        * */
    }
}

class A {
    static {
        System.out.println("A类静态代码块初始化");
        m = 300;
    }

    /*
        m = 300
        m = 100;
    * */

    static int m = 100;

    public A() {
        System.out.println("A类的无参构造初始化");
    }
}
